SynaBun
NPM · SYNABUN
Persistent memory MCP server for Claude Code, Codex and OpenCode, stored locally in SQLite
Available components
Last scanned (22 hours ago)
Scores higher than 43% of npm servers
Category Memory and Knowledge
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.
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.
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 →
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 →
bluesky_action ~169
BlueSky: act on a post or actor. Post: like/unlike, repost/unrepost, delete (your own). Actor: follow/unfollow, mute/unmute, block/unblock. Undo actions resolve the record key automatically — never pass rkeys.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | The action to perform. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| target | string | yes | Post actions (like/unlike/repost/unrepost/delete): post AT-URI or bsky.app URL. Actor actions (follow/unfollow/mute/unmute/block/unblock): handle or DID. |
No output schema declared.
No examples provided.
bluesky_author_feed ~200
BlueSky: read a user's posts (author feed) as compact JSON. Pass actor (handle or DID), optional filter, and maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | yes | Handle (e.g. alice.bsky.social) or DID of the author. |
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| filter | string | – | Server-side filter. Default posts_with_replies. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
bluesky_dm ~258
BlueSky DMs (chat.bsky.*): list_convos, read messages in a convo, send a message (by convoId or members), or mark_read. Returns compact JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | list_convos = your DM conversations; messages = messages in a convo; send = send a message; mark_read = mark a convo read. |
| convoId | string | – | Conversation ID (messages/mark_read; send if not using members). |
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| members | array | – | For send: handles/DIDs to open/find a convo with, instead of convoId. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| text | string | – | Message text (required for send). |
No output schema declared.
No examples provided.
bluesky_feed ~215
BlueSky: read a custom feed generator (mode=feed) or a list timeline (mode=list) by its AT-URI. Returns compact posts + next cursor. Pass maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| mode | string | yes | feed = a custom feed generator; list = a user list timeline. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| uri | string | yes | AT-URI of the feed generator (mode=feed) or the list (mode=list). |
No output schema declared.
No examples provided.
bluesky_graph ~186
BlueSky: list an actor's followers or follows as compact actor cards + next cursor. Pass maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | yes | Handle or DID whose graph to read. |
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| which | string | yes | followers = who follows them; follows = who they follow. |
No output schema declared.
No examples provided.
bluesky_likes ~227
BlueSky: list likes. mode=post → the actors who liked a given post; mode=actor → the posts an actor has liked. Pass maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | Handle or DID (mode=actor). |
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| mode | string | yes | post = who liked a post (needs uri); actor = posts an actor has liked (needs actor). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| uri | string | – | Post AT-URI or bsky.app URL (mode=post). |
No output schema declared.
No examples provided.
bluesky_notifications ~196
BlueSky: list your notifications (likes, reposts, replies, mentions, follows) as compact JSON. Pass markSeen:true to clear the unread badge, maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| markSeen | boolean | – | Mark notifications seen (updates the seen timestamp) after fetching. |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| priority | boolean | – | Only priority notifications. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
bluesky_post ~270
BlueSky: publish a post. Supports plain text with auto-facets (@mentions, links, #hashtags), replies (replyTo), quote-posts (quote), and up to 4 images (by url or local path, each with alt text). A link card (OG preview with thumbnail) is auto-generated for the first URL when the post has no images and no quote. Returns the new post uri+cid.
| Name | Type | Req | Description |
|---|---|---|---|
| images | array | – | Up to 4 images; give url OR path for each. Images take precedence over a quote embed. |
| langs | array | – | BCP-47 language tags. Default ["en"]. |
| quote | string | – | Quote-post this post (AT-URI or bsky.app URL). |
| replyTo | string | – | Reply to this post (AT-URI or bsky.app URL). Root/parent refs are derived automatically. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| text | string | yes | Post text (max 300 graphemes). @mentions, URLs and #hashtags are auto-detected into rich-text facets. |
No output schema declared.
No examples provided.
bluesky_profile ~109
BlueSky: get an actor profile (did, handle, name, bio, follower/following/post counts, and your viewer relationship: following/followedBy/muted/blocking).
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | yes | Handle or DID to look up. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
bluesky_resolve ~94
BlueSky: resolve a handle to its DID (com.atproto.identity.resolveHandle).
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | Handle to resolve, e.g. alice.bsky.social. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
bluesky_search_actors ~180
BlueSky: search for users (actors). Returns compact actor cards (did, handle, name, bio, viewer relationship) + next cursor. Pass maxItems to auto-paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| q | string | yes | Search query (name / handle). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
bluesky_search_posts ~251
BlueSky: full-text search posts. Supports sort (top/latest), since/until, author, lang. Pass maxItems to auto-paginate. Returns compact posts + next cursor.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Limit to posts by this handle/DID. |
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| lang | string | – | BCP-47 language filter, e.g. en. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| q | string | yes | Search query. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| since | string | – | Lower bound, ISO datetime or YYYY-MM-DD. |
| sort | string | – | Ranking. Default top. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| until | string | – | Upper bound, ISO datetime or YYYY-MM-DD. |
No output schema declared.
No examples provided.
bluesky_session ~180
BlueSky: who am I? Returns the logged-in account (did, handle, pdsUrl). Use first to confirm you are signed in. A blank assigned tab is safely initialized at bsky.app; nonblank tabs are never navigated implicitly. An expired session token is renewed inside the tool (waiting for bsky.app, then reloading its tab at most once), so "not logged in" means the page really has no session. Pass validate:true to check the token against the server.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| validate | boolean | – | Also call com.atproto.server.getSession to verify the token server-side. |
No output schema declared.
No examples provided.
bluesky_thread ~173
BlueSky: read a post and its thread (parents + replies) as compact JSON. Accepts an AT-URI or a bsky.app post URL. Each post includes uri+cid (needed to reply/like/repost).
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | – | Reply levels to fetch (default 6). |
| parentHeight | integer | – | Parent levels to fetch (default 5). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
| uri | string | yes | Post AT-URI (at://...) OR a bsky.app post URL (https://bsky.app/profile/<handle>/post/<rkey>). |
No output schema declared.
No examples provided.
bluesky_timeline ~170
BlueSky: read your home timeline (following feed) as compact JSON posts (uri, cid, author, text, counts, viewer). Pass maxItems to auto-paginate. Returns the next cursor.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from a prior call. Omit for the first page. |
| limit | integer | – | Items per page (default 50, max 100). |
| maxItems | integer | – | Auto-paginate (follow cursors) until this many items are gathered in ONE call. Default = one page. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session (the bsky.app tab). Auto-resolved if omitted. |
No output schema declared.
No examples provided.
browser_batch ~119
Run up to 10 known browser steps sequentially on one owned tab. Uses existing guarded tools, stops on the first failure, and returns one final snapshot by default. Never retry the whole batch after a partial failure. Steps run exactly as written: no Jev assistance inside a batch. A batch that navigated may end with one advisory "assessment" of the final page.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | – |
| snapshot | string | – | Final observation; default full. |
| steps | array | yes | – |
| tabId | string | – | – |
No output schema declared.
No examples provided.
browser_cheatsheet ~121
Look up stable selectors and flow notes for a social platform (twitter, facebook, tiktok, whatsapp, instagram, linkedin). Call this before automating a platform the first time in a session — then reuse the returned selectors for browser_click / browser_type / browser_fill / browser_scroll / browser_snapshot.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Optional: filter to a single action (click/type/fill/scroll/snapshot/extract/evaluate). If omitted, returns every action known for the platform. |
| platform | string | yes | Target platform to fetch selectors for. |
No output schema declared.
No examples provided.
browser_click ~356
Click an element. Pass ref (e.g. "e12") from browser_snapshot — exact, no guessing. Selector is the fallback (CSS, text="...", :has-text(...), role=...; never :contains()). By default the response includes an AI snapshot diff of what changed, so you usually do NOT need a follow-up browser_snapshot.
| Name | Type | Req | Description |
|---|---|---|---|
| nthMatch | integer | – | If the selector matches multiple elements, target the Nth (0-indexed). |
| ref | string | – | Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing. |
| returnSnapshot | object | – | Legacy inline snapshot (tree modes). Prefer the "snapshot" param, which returns ref-based AI snapshots. |
| selector | string | – | Playwright selector for the element to click (CSS, text="...", :has-text("..."), role=..., [data-testid="..."]). Fallback when you have no ref. NEVER use :contains(). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| snapshot | string | – | Inline AI snapshot after the click. Default "diff" = only the changed region vs your last snapshot. "none" = terse response. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| textHint | string | – | What you meant to click, in words (e.g. "Account settings"). If the selector matches nothing the server first tries an exact role+name match; failing that, the visible candidates are ranked against t… |
No output schema declared.
No examples provided.
browser_console ~227
Read the current tab's console messages and uncaught page errors (the last 200, kept from when SynaBun opened the tab), localhost pages included. Use level "error" to check a page for errors, and clear or since to see only what a reload or an action produced.
| Name | Type | Req | Description |
|---|---|---|---|
| clear | boolean | – | Empty the tab's buffer after reading, so the next call shows only new entries. |
| level | string | – | Lowest level to return; each level includes the more severe ones (error < warning < info < log). Default "all". Uncaught page errors count as errors. |
| limit | integer | – | Return at most this many of the newest matching entries (default 50). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| since | string | – | Only entries after this time (ISO timestamp or epoch ms), e.g. the "latest" value of a previous call. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_content ~204
Get the content of the current page. Set format="markdown" for clean markdown with structure preserved — preferred for LLM consumption. Returns up to maxChars (default 20000); pass offset to page through long pages.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Output format. "text" = raw innerText. "markdown" = clean markdown (headings/links/lists, nav/footer/ads stripped) — better for LLM consumption. |
| maxChars | integer | – | Max characters returned (default 20000). Response notes total size when truncated. |
| offset | integer | – | Character offset to continue a previously truncated read. |
| selector | string | – | Read one article or result container instead of the whole page. Must match exactly one element. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_evaluate ~131
Execute JavaScript in the browser page context and return the result. Useful for reading DOM state, extracting data, or performing actions not covered by other tools.
| Name | Type | Req | Description |
|---|---|---|---|
| expression | string | – | Alias for "script" — accepted for compatibility with Playwright conventions. |
| script | string | – | JavaScript code to execute in the browser page context. The return value will be serialized to JSON. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_fb_groups ~521
Extract ALL JOINED Facebook groups from the current page (navigate to facebook.com/groups/joins/?ordering=viewer_added first) as a region-sorted index. Auto-scrolls the full virtualized joins list and dedupes by url in ONE call (defaults: scrolls:10, maxItems:1000 — override for very large/small lists). Each group {name, url, subtitle, member_count, region, lang, currency, source} is reconciled against the curated seed-queue memory first; groups not in it are classified from name+slug (language tokens: pt/tr/de/fr/es/pl/it/nl, and country aliases) into region + posting-currency, source:"name-heuristic"; the still-ambiguous ones land in region "Unknown" and under "unmatched". Spanish groups split into LatAm (USD) vs Spain (EUR). Returns { counts, byRegion: { UK:[...], US:[...], EU:[...], Brazil:[...], LatAm:[...], ... }, unmatched:[...] }. Pass region to filter to one bucket. Feed the whole JSON to fb_groups import {fromExtract} to populate/refresh the structured directory.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the complete grouped JSON response, preserving whole groups. Metadata must fit; unmatched duplicates are omitted first. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| region | string | – | Optional case-insensitive filter: only return groups in this region bucket (UK, US, EU, Brazil, LatAm, Turkey, Australia, Canada, Unknown). |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| seedQueueId | string | – | Memory id of the curated seed-queue (url | lang | currency) used to reconcile region/currency. Default: the built-in seed-queue memory id. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_fb_posts ~254
Extract visible Facebook posts as structured JSON (author, authorUrl, text, time, postUrl, reactions). Works on group feeds and Pages. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Much faster than browser_snapshot for data harvesting from Facebook.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_ig_feed ~255
Extract visible Instagram feed posts as structured JSON (username, profileUrl, postUrl, caption, likes, comments, time, datetime, isSponsored, hasFollow). Navigate to instagram.com/ first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_ig_post ~123
Extract a single Instagram post with comments as structured JSON (author, caption, likes, commentCount, time, datetime, comments[{username, text, time, datetime}]). Navigate to instagram.com/p/POST_ID/ or instagram.com/reel/REEL_ID/ first. Scroll the comment area to load more comments before extracting.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_ig_profile ~116
Extract Instagram profile data as structured JSON (username, displayName, bio, posts, followers, followerExact, following, isVerified, website, gridPosts, highlights). Navigate to instagram.com/username/ first. Returns bio, stats, post grid (up to 12), and story highlights.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_ig_reels ~257
Extract visible Instagram Reels with engagement data as structured JSON (username, profileUrl, caption, likes, comments, audioName, audioUrl, hasFollow). Navigate to instagram.com/reels/ first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_ig_search ~260
Extract posts from the Instagram Explore page as structured JSON (url, alt, isReel). Navigate to instagram.com/explore/ first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. For hashtag search, navigate to instagram.com/explore/tags/HASHTAG/.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_li_feed ~282
Extract visible LinkedIn feed posts as structured JSON (author, authorUrl, headline, time, text, reactions, commentsCount, mediaType, articleTitle, articleLink, isPromoted, isRepost, postUrl). Navigate to linkedin.com/feed/ first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Much faster than browser_snapshot for data harvesting from the LinkedIn feed.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_li_jobs ~274
Extract LinkedIn job listings as structured JSON (jobId, title, company, companyUrl, location, salary, jobUrl, logo, promoted, easyApply, postedDate). Works on linkedin.com/jobs/ (recommendations) and linkedin.com/jobs/search/?keywords=QUERY&location=LOCATION. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_li_messages ~144
Extract LinkedIn messaging data as structured JSON with two arrays: conversations[{name, lastMessage, time, isUnread, url}] (sidebar list) and activeThread[{sender, text, time, direction}] (open conversation messages). Navigate to linkedin.com/messaging/ first. Click a conversation to load its messages. To send a message: browser_fill on .msg-form__contenteditable then browser_click on .msg-form__send-button.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_li_network ~159
Extract LinkedIn My Network data as structured JSON with two arrays: invitations[{name, subtitle, profileUrl, acceptLabel, ignoreLabel}] (pending connection requests) and suggestions[{name, subtitle, followers, profileUrl, action, image}] (people/creators to follow or connect). Navigate to linkedin.com/mynetwork/ first. Scroll down to load more suggestions. To accept an invitation: browser_click on button with the acceptLabel. To connect: browser_click on the respective Conectar/Connect button.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_li_notifications ~253
Extract LinkedIn notifications as structured JSON (text, time, isUnread, url, image). Navigate to linkedin.com/notifications/ first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Useful for monitoring engagement, connection requests, and mentions.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_li_post ~138
Extract a single LinkedIn post with comments as structured JSON (author, authorUrl, headline, time, text, reactions, commentsCount, postUrn, comments[{author, authorUrl, text, time, likes}]). Navigate to linkedin.com/feed/update/urn:li:activity:ID/ first. Click "Comentar" button to expand comment section, then scroll to load more comments before extracting.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_li_profile ~128
Extract LinkedIn profile data as structured JSON (name, headline, location, profilePic, connections, about, sections[{heading, items[{title, subtitle, meta}]}], recentActivity). Navigate to linkedin.com/in/USERNAME/ first. Sections include Experience, Education, Skills, etc. Use linkedin.com/in/me/ for the logged-in user's own profile.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_li_search_people ~264
Extract LinkedIn people search results as structured JSON (name, profileUrl, headline, location, mutual, actionButton, image). Navigate to linkedin.com/search/results/people/?keywords=QUERY first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Also works on linkedin.com/search/results/all/.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_tiktok_profile ~126
Extract profile info and video grid from a TikTok profile page as structured JSON (name, handle, bio, followers, following, likes, videos[{videoUrl, views}]). Navigate to tiktok.com/@username first. Scroll down to load more videos in the grid. Use this to audit a creator profile or collect video URLs for further processing.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_extract_tiktok_search ~262
Extract visible TikTok search result videos as structured JSON (videoUrl, handle, profileUrl, caption, views). Navigate to tiktok.com/search?q=<query> first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Much faster than browser_snapshot for harvesting TikTok search results.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_tiktok_studio ~267
Extract visible posts from TikTok Studio content list as structured JSON (title, url, date, privacy, stats[]). Navigate to tiktok.com/tiktokstudio/content first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Use this to audit, manage, or bulk-read your published TikTok content.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_tiktok_videos ~277
Extract visible TikTok videos from the For You or Following feed as structured JSON (handle, videoUrl, caption, likes, comments, saves, shares, music). Navigate to tiktok.com/ or tiktok.com/following first. Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call. Much faster than browser_snapshot for data harvesting from TikTok feeds.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_tweets ~282
Extract visible tweets as structured JSON (author, handle, text, time, url, replies, reposts, likes, views). Pass scrolls/minItems to auto-scroll, extract, and dedupe in ONE call (e.g. scrolls:3 minItems:30). Much faster than browser_snapshot for data harvesting. Navigate to x.com/search?q=%23hashtag&f=live first for latest-first hashtag results.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_wa_chats ~271
Extract visible WhatsApp chats from the sidebar as structured JSON (name, lastMsg, time, unreadCount, muted, pinned). Must be on web.whatsapp.com with the chat list visible. Pass scrolls/minItems to auto-scroll the sidebar and dedupe in ONE call. Use browser_click on span[title="Chat Name"] to open a specific chat.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_extract_wa_messages ~269
Extract visible messages from the open WhatsApp chat as structured JSON (sender, time, date, direction, text, dataId). Open a chat first by clicking span[title="Chat Name"]. Pass scrolls/minItems to auto-scroll UP through history and dedupe in ONE call. direction is "in" for received and "out" for sent messages.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Return only these fields; identity deduplication still uses the full items. |
| maxChars | integer | – | Cap the JSON items in characters, keeping complete items. Defaults to no additional character cap. |
| maxItems | integer | – | Cap on returned items (default 50). |
| minItems | integer | – | Stop scrolling once this many unique items are collected. |
| scrolls | integer | – | Auto-scroll up to N times, extracting + deduping after each (default 0 = current view only). Stops early at minItems or end of feed. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| timeoutMs | integer | – | Total extraction deadline with browser V2 enabled (default 15000ms). |
No output schema declared.
No examples provided.
browser_fb_composer_state ~755
Inspect the Facebook posting surface in ONE call (read-only). Returns: modal {open,title,closeSelector,containsComposer} (modal.open is true ONLY for a visible posting dialog — FBs permanent hidden 0x0 Notifications dialog is ignored); trigger {found,text,suggestedSelector} — the Create-post button to CLICK first when no composer dialog is open yet (on a bare feed the probe can only see boxes that already exist, so use this to OPEN the composer; after opening, browser_type with NO selector into the auto-focused editor — selector-targeting the dialog editor is flaky); composers[] (search boxes filtered out) each with scope inline|dialog, inDialog, visible, rect, text, ariaLabel, placeholder, isPersonalProfile, isComment, isPostComposer (a comment box is flagged isComment and is NEVER a post composer — do not type a post into it), suggestedSelector; submitButton {label,scope,matchType,selector,enabled} scoped to the active visible dialog (matchType "label" = matched a publish/approval verb incl. German Senden/Veröffentlichen/Zur Genehmigung senden; "heuristic" = inferred as the dialog footer primary button when the label was untranslated, so verify via submission.state after clicking); submission {state: visible-post|pending-approval|posting-failed|composer-open|unknown, evidence}; and recommendedAction {submit|type|open-composer|done|retry|unknown} — the deterministic next step (submit = composer open with text AND an enabled submit button; use it to FINISH a half-typed post before starting anything new). Locale-tolerant (PT/EN/TR/FR/ES/DE incl. approval-flow groups). Flow: probe; if recommendedAction is "submit", click submitButton.selector and confirm FIRST; else if no composer dialog, click trigger.suggestedSelector; re-probe; type the full post into the auto-focused isPostComposer box with browser_type mode:"insert" (blank lines between paragraphs, link alone on the final line — insertText keeps the paragraphs and the isolated URL without firing Enter, so the ty…
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_fill ~237
Clear an input/textarea and fill it with new text. Pass ref from browser_snapshot (preferred) or a selector. For contenteditable editors prefer browser_type.
| Name | Type | Req | Description |
|---|---|---|---|
| nthMatch | integer | – | If the selector matches multiple elements, fill the Nth (0-indexed). |
| ref | string | – | Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing. |
| selector | string | – | Playwright selector for the input/textarea to fill (CSS, text="...", :has-text("..."), role=..., [data-testid="..."]). Fallback when you have no ref. NEVER use :contains(). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| textHint | string | – | Auto-heal: if the selector matches 0 elements, server retries with role=*[name~="<textHint>"]. |
| value | string | yes | The text value to fill. Clears existing content first. |
No output schema declared.
No examples provided.
browser_go_back ~64
Go back to the previous page in browser history.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_go_forward ~64
Go forward to the next page in browser history.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
browser_hover ~218
Hover over an element (reveals dropdowns, tooltips, hover-triggered content). Pass ref from browser_snapshot (preferred) or a selector.
| Name | Type | Req | Description |
|---|---|---|---|
| nthMatch | integer | – | If the selector matches multiple elements, hover over the Nth (0-indexed). |
| ref | string | – | Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing. |
| selector | string | – | Playwright selector for the element to hover over (CSS, text="...", :has-text("..."), role=..., [data-testid="..."]). Fallback when you have no ref. NEVER use :contains(). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| textHint | string | – | Auto-heal: if the selector matches 0 elements, server retries with role=*[name~="<textHint>"]. |
No output schema declared.
No examples provided.
browser_navigate ~284
Navigate the browser to a URL (auto-creates a session if needed). By default the response includes an AI snapshot of the new page with [ref=eN] element refs — act on them directly with browser_click/fill/type, no separate snapshot call needed. A "Jev assessment:" line may follow (usable, loading, authentication_required, verification_required, consent_blocker, error, empty): it is advice about the page, never an action. On a sign-in or verification wall, stop and hand over to a human.
| Name | Type | Req | Description |
|---|---|---|---|
| intent | string | – | What you expect this page to let you do or show (e.g. "read my open invoices"). Adds a "goal satisfied" estimate to the page assessment. Advisory only. |
| returnSnapshot | object | – | Legacy inline snapshot (tree modes). Prefer the "snapshot" param, which returns ref-based AI snapshots. |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session or creates a new one. |
| snapshot | string | – | Inline AI snapshot of the new page (default "full", with [ref=eN] refs for actions). "none" = terse response. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
| url | string | yes | The URL to navigate to. |
No output schema declared.
No examples provided.
browser_press ~106
Press a keyboard key or key combination. Supports modifiers like Control+A, Shift+Enter, etc.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Key or key combo to press (e.g. "Enter", "Tab", "Control+A", "Escape", "ArrowDown"). |
| sessionId | string | – | Browser session ID. If omitted, auto-selects the only open session. |
| tabId | string | – | Target a specific tab within the session. Auto-resolved from environment if omitted. |
No output schema declared.
No examples provided.
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
claude mcp add danilokhury-synabun -- npx -y synabun
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.