Skip to content

Merge Bookmarks MCP tool

MCP findutils:merge_bookmarks

Merge two or more Netscape bookmarks.html exports (Chrome, Firefox, Edge, Safari) into one bookmarks.html that any browser imports. Every link and folder is kept in file order; by default each file goes under its own top-level folder named after the file, and wrap_in_folders=false merges folders that share a name (both "Bookmarks bar" folders become one). dedupe keeps the first copy of each address, compared the way dedupe_bookmarks compares them: host case, default port and trailing slash folded, and by default utm_* / fbclid / gclid parameters and the #fragment ignored. An input with no bookmarks is reported and the rest still merge. Descriptions, icons and tags are not carried over, empty folders are not written, and no link is fetched.

Arguments

application/json
  • inputs

    array required

    The bookmarks.html file contents, one string per file, in the order they should appear. At least 2 with bookmarks, at most 20.

  • names

    array optional

    Optional file names, one per input, used to name each file's folder (the .html extension is dropped). Missing names become "File 1", "File 2"…

  • wrap_in_folders

    boolean optional

    Put each file under a top-level folder named after it. Default true. When false, folders with the same name at the same level are merged. Default true.

  • dedupe

    boolean optional

    Keep only the first copy of each address. Default false: every copy stays. Default false.

  • strip_tracking

    boolean optional

    When deduping, treat utm_*, fbclid and gclid parameters as noise. Default true. Default true.

  • ignore_fragment

    boolean optional

    When deduping, treat addresses that differ only by #fragment as the same page. Default true. Default true.

Example arguments

Verified
{
  "inputs": [
    "<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<DL><p>\n    <DT><A HREF=\"https://example.com/\">Example</A>\n</DL><p>\n",
    "<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<DL><p>\n    <DT><A HREF=\"https://example.org/\">Example Org</A>\n</DL><p>\n"
  ],
  "names": [
    "work.html",
    "home.html"
  ]
}